Collaborative Agent Encryption And Decryption

ABSTRACT

A method for securely transmitting data from a sender computer system to a receiver computer system comprises receiving a cleartext message by a first intelligent agent environment; splitting said message into a plurality of message fragments; creating an intelligent agent for each message fragment; generating a key for each message fragment; encrypting each said message fragment to produce a respective encrypted message fragment; and transmitting each intelligent agent with said respective encrypted message fragment as a data payload. The method may further comprise receiving each intelligent agent with its respective encrypted message fragment as a data payload by a second intelligent agent environment at the receiver computer system; locating each of a set of agents; decrypting each encrypted respective message fragment to produce a respective cleartext message fragment; and collaborating by the set of agents to recombine cleartext message fragments to form a cleartext message.

BACKGROUND

The present invention relates to securely transmitting data, and moreparticularly to achieving improved protection against the breaching ofsecurity even when data is sent over a channel subject to interception.

The securing of data during transmission has been of interest throughouthuman history, and secure communication has been an essential part ofcommerce since time immemorial.

More recently, and especially since the widespread availability ofcomputing power and technical means of data transmission, withsophisticated means of securing data transmitted over telecommunicationschannels and equally sophisticated technical means of decryptingmessages, there has developed a rapidly-accelerating race between thosewho wish to secure messages and those who wish to “crack” them.

There is a constant search for new technical means of securing dataduring transmission by increasing the threshold of feasibility ofdecryption, and an equally constant search for means of renderingfeasible decryptions that were thought to be infeasible. Similarly, theprocessing and transmission costs of sending information securely are ofconcern. The volume of data to be transmitted in the course of businesstransactions is increasing, and the cost of using public networks isconstantly decreasing, while the cost of using private networks is evermore costly. It would be advantageous to be able to send more data,especially in bulk data applications, over less costly open channels,such as the Internet, but it is difficult to secure transmissions oversuch a medium to the standard normally required for commercialconfidentiality purpose.

Modern encryption technology allows data to be very strongly encrypted,so that the degree of effort and time to crack any given encoding isnowadays very high or almost impossible to achieve. However, twoweaknesses of the traditional “encrypt data, send data, receive anddecrypt data” paradigm are that (1) the data is sent as a whole and (2)only one encryption/decryption key is normally used.

Published European patent application number EP 0 993 142 A1, forexample, proposes a method for providing security for data wherein thebulk of transmitted data is encrypted and transmitted over an inherentlyless secure channel while selected segments of data are transmitted overa normally private channel, such as the telephone network. Aneavesdropper on the less secure channel is thus prevented from readingall the data. Disclosed also is the notion of using one or morescrambling algorithms to scramble data according to a formula derivedfrom the data itself

Published PCT patent application number WO 00/18078 proposes a methodwhereby a message is split and transmitted over two channels in such amanner that the portion of the message to be sent over the less securechannel is encrypted, while the portion transmitted over the securechannel remains unencrypted.

Published US Patent Application number 2004/0083361 A1 discloses amethod for transmitting data securely by adaptively transforming it andspreading the transformed data piece wise over plural transmissionchannels.

These known techniques provide some alleviation to the security problemsdescribed above. However, in the search for ever-improved securemethods, it is desirable to find a way of further increasing thesecurity of a message by further reducing the computational feasibilityof an unauthorized person's recovering the information content of themessage, while limiting the cost of processing and transmission.

SUMMARY

The illustrative embodiments provide, in a first aspect, a method forsecurely transmitting data from a sender computer system to a receivercomputer system comprising the steps of: receiving a cleartext messageby a first intelligent agent environment at said sender computer system;splitting said message into a plurality of message fragments by asplitter component of said first intelligent agent environment; creatingan intelligent agent for each said message fragment by an agent creatorin said first intelligent agent environment; generating a key for eachsaid message fragment by a key generator function of each saidintelligent agent; encrypting each said message fragment by anencryption function of each said intelligent agent to produce arespective encrypted message fragment; and transmitting each saidintelligent agent with said respective encrypted message fragment as adata payload.

In another aspect, the method may further comprise the steps of:receiving each said intelligent agent with said respective encryptedmessage fragment as a data payload by a second intelligent agentenvironment at said receiver computer system; locating by each saidintelligent agent each other of a set of agents; decrypting each saidencrypted respective message fragment by a decryption function of eachsaid intelligent agent to produce a respective cleartext messagefragment; and collaborating by each said intelligent agent of said setof agents to recombine each said respective cleartext message fragmentto form a cleartext message.

Preferably, said step of transmitting each said intelligent agentcomprises transmitting by a route selected from a plurality of routes toexclude routes used to transmit any other of said intelligent agents.Preferably, said step of encrypting each said message fragment comprisesencrypting by an encrypting function selected from a plurality ofencrypting functions to exclude encrypting functions used to encrypt anyother of said plurality message fragments. Preferably, wherein said stepof splitting said message into a plurality of message fragments furthercomprises attaching sequence metadata to each of said message fragments.

Preferably, said step of collaborating to recombine comprises orderingsaid cleartext message fragments according to said sequence metadata.Preferably, said step of decrypting further comprises delaying until apredetermined time.

In another embodiment, an apparatus is provided for securelytransmitting data from a sender computer system to a receiver computersystem comprising: a first intelligent agent environment at said sendercomputer system operable to receive a cleartext message; a splittercomponent of said first intelligent agent environment operable to splitsaid message into a plurality of message fragments; an agent creator insaid first intelligent agent environment operable to create anintelligent agent for each said message fragment; a key generator ofeach said intelligent agent operable to generate a key for each saidmessage fragment; an encryption component of each said intelligent agentoperable to produce a respective encrypted message fragment byencrypting each said message fragment; and means for transmitting eachsaid intelligent agent with said respective encrypted message fragmentas a data payload.

The apparatus may further comprise: a second intelligent agentenvironment at said receiver computer system operable to receive eachsaid intelligent agent with said respective encrypted message fragmentas a data payload; means for locating by each said intelligent agenteach other of a set of agents; a decryption component of each saidintelligent agent operable to produce a respective cleartext messagefragment by decrypting each said respective encrypted message fragment;and means for collaborating by each said intelligent agent of said setof agents to recombine each said respective cleartext message fragmentto form a cleartext message.

Preferably, said means for transmitting each said intelligent agentcomprises means for transmitting by a route selected from a plurality ofroutes to exclude routes used to transmit any other of said intelligentagents. Preferably, said encryption component comprises an encryptingfunction selected from a plurality of encrypting functions to excludeencrypting functions used to encrypt any other of said plurality messagefragments. Preferably, said splitter component further comprises meansfor attaching sequence metadata to each of said message fragments.Preferably, means for collaborating to recombine comprises means forordering said cleartext message fragments according to said sequencemetadata. Preferably, step of decrypting further comprises delayinguntil a predetermined time.

In yet another embodiment, a computer program comprises computer programcode to, when loaded into a computer system and executed, perform allthe steps of the method according to the first aspect.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

A preferred embodiment of the present invention will now be described byway of example only, with reference to the accompanying drawings, inwhich:

FIG. 1 is a block-level device diagram illustrating an apparatus forcollaborative agent encryption and decryption in accordance with anillustrative embodiment;

FIG. 2 is a process flow diagram representing operation of transmittingan encrypted message according to an illustrative embodiment; and

FIG. 3 is a process flow diagram representing operation of receiving anddecrypting a message according to an illustrative embodiment.

DETAILED DESCRIPTION

An embodiment of the present invention provides secure delivery of datavia multiple encrypted fragments transmitted over different routes,using inter-agent collaborative encryption and decryption, requiring allfragments to arrive at destination before they can be decrypted andreconstituted into the original complete data form. This gives addedprotection where data is sent via insecure or untrusted channels, andallows multiple encryption keys to be randomly generated and not passedon to any other human party.

The illustrative embodiments use multiple keys and collaborating agentsto split the source data into individual fragments each encrypted withsame or different algorithms using different keys. Interception andcracking of any fragment still does not give an attacker access to thewhole data. This gives added protection where data is sent via insecureor untrusted distribution channels. Advantageously, no key need bedisclosed to any human user at the originating and destinationpoints/parties.

The illustrative embodiment of the present invention uses proven commonportable technology such as Java and mobile agent technology and morespecifically aglets. Aglets are already well-known in the art, havingbeen invented by researchers at the IBM Tokyo Research Laboratory andwell publicized in both commercial and academic publications, but a fewnotes on them and on their use may be found helpful. The Aglet SoftwareDeveloper's Kit (ASDK) is provided freely under an Open Source licenseand is available for download from the World Wide Web by softwaredevelopers interested in using it. In brief, aglets are agent objectswith defined sets of methods that enable them to behave in an autonomousfashion, in instantiating themselves in response to a particular“stimulus”, and then in serializing their program code and data in orderto autonomously send themselves to remote systems. They are furthercapable of cloning themselves for various purposes, one of which is sothat they can forward copies of themselves to remote systems. Agletshave further capabilities which can be programmatically activated, suchas the capability of communicating in certain constrained ways withtheir host systems and also with other aglets present in the same hostsystem.

Data to be securely sent from A to B is processed by plural mobileagents, such as the aglets described. The data starts by being passed ascleartext to a secure agent environment in which agents can be created.The agents divide the source data between them, each encrypting itsfragment with its own key. The fragmentation can be as convoluted asrequired to ensure that should any one fragment ever be cracked thenthere is still insufficient data in an understandable form to be of muchuse. For example, a very simple fragmentation would be to split the datainto two fragments where each fragment contained every other word, i.e.words 1,3,5,7 . . . and words 2,4,6,8 . . .

At the time of fragmentation each agent knows how many other agents areinvolved and their identities and what specific fragment they are eachresponsible for.

The agents then send their encrypted data fragments to the destinationusing whatever routing paths they have each chosen. The agents thenpropagate themselves to the destination agent environment. The securedestination environment then hosts the data fragments and agents untilall original fragments and agents have arrived. While in holding, eachagent checks for its own data fragment and interacts with the otheragents to each establish that all known originating agents have arrivedand that each of these agents confirms it has its respective datafragment as a payload. Once this has happened then the agents canindividually decrypt their own data fragments and then collaborate topiece the fragments back together again to form a whole.

At no point is a single encryption key disclosed, thus allowing data tobe sent seamlessly from one secure environment to another secureenvironment with effective automatic encryption and decryption.Additionally, deliberate time delays can be injected into the system sothat data arrives spread over any period of time. Arrival of the lastfragment need not be the final decryption time either, as the agents canat source be instructed not to collaborate to decrypt the data until agiven date and time.

Source and destination consist of secure environments that can hostmobile agents and data. Data to be securely transmitted is introducedinto the secure environment, preferably together with other applicableparameters, such as the number of fragments, time parameters and thenumber of transmission routes to be used.

The parameters and data are preferably processed by a masteragent/aglet. The purpose of the master agent is:

1. From the parameters and type of data to determine the number ofagents required. Additional parameters and/or factors can be calculatedaccording to a master agent rule set, taking into account availableresources and any other external factors.

2. To create/spawn the desired number of agents/aglets.

3. To give all agents a unique identifier key that allows the agents torecognize and communicate with each other at the target location. Ifrequired this key, or another allocated key, can also be used to encryptinter-agent communication.

4. To slice/fragment the source data and give each sub agent itsassociated data and metadata indicating how that data was fragmented.The fragmentation could be simple or complex. A complex example could befor example: generating segments of differing lengths using a loopingcombination of head and tail functions where each successive headsegment is snipped from the data at a length interval determined by aconstrained pseudo-random number generator.

The sub agents/aglets encrypt their allocated data fragments with selfgenerated random keys and choice of algorithm, and then send/route thedata fragments to the desired destination. They then propagatethemselves to the target location on an alternative route if possible.The

agents can delay their departure so as to not be in the same time frameas the data. As part of the collaboration process at the fragmentation,encryption and propagation stage then agents can ensure that they do notall use the same connections and routes to the target destination orthat they use those routes with suitable delays to reduce their chancesof place and time coexistence.

On arrival at the secure environment the data and agents arehosted/congregated until all parties are present. The agents areoperable to communicate with one another to confirm that they have eacharrived intact and not been compromised and they then collaborate in thefragment decryption and reassembly process to reconstruct the originaldata in its original form.

Turning now to FIG. 1, there is shown a block-level device diagramillustrating an apparatus for collaborative agent encryption anddecryption in accordance with an illustrative embodiment.

FIG. 1 shows sender aglet environment 100, which is cooperable with anetwork to receive input message 102. On receipt of input message 102,master aglet 104 is instantiated and causes a method to be invoked tosplit the message into sequential fragments identified with sequencemetadata by message splitter-sequencer 106. Master aglet 104 spawns aplurality of aglets 112, 112′ shown here as AGLET 1, AGLET 2 . . . Thenumber of aglets is determined as previously described, but only two areshown here, for ease of understanding of the figure and for brevity ofdescription. Aglets 112, 112′ are operable to invoke methods to generatekeys by key generators 108, 108′, and to encrypt their respectivefragments of the message by invoking methods of encryptor/decryptors110, 110′. As aglets 112, 112′ are instantiated at the sender agletenvironment, additional methods for recombining message fragments bymessage recombiners 122, 122′ are disabled. As will be clear to one ofordinary skill in the art, aglets may contain a plurality of methodsthat are enabled or disabled depending on the environment in which theaglets are instantiated, as well as on other externally or internallygenerated stimuli.

Aglets 112, 112′ are operable to cause themselves to be transmittedacross a network, for example, a wide area network, such as the Internetfrom sender aglet environment 100 to receiver aglet environment 116.Aglets 112, 112′ may carry their encrypted data fragments as datapayloads, or they may operate to send their data payloads separatelyacross the network and receive them from the network at receiver agletenvironment 116.

On arrival in aglet environment 116, aglets 112, 112′ are activated andoperable to communicate with one another using methods which are wellknown in the art. The aglets 112, 112′ cooperate to determine when allthe related aglets have arrived at receiver aglet environment (andoptionally when any separately transmitted data has arrived), so thatall the message fragments can be decrypted and reassembled.Alternatively, even when all fragments have arrived, the aglets 112,112′ may delay further processing until some predetermined time. Whenall aglets 112, 112′ are ready, they invoke encryptor/decryptor methods110, 110′ to decrypt their respective fragments and then invoke messagerecombiner methods 122, 122′ to recombine the fragments according to thesequence metadata that was packaged with them by messagesplitter-sequencer 106. On completion of their decryption andrecombining methods, aglets 112, 112′ are operable to provide thedecrypted and reassembled message 124.

Turning now to FIG. 2, there are shown the steps of the transmissionportion of a method according to an illustrative embodiment. FIG. 2 alsoillustrates the computer program code steps required to implement anembodiment of the present invention in a computer program product, butfor brevity, the method steps will be described here. It will be clearto those skilled in the programming art that the method lends itself toembodiment in program code implementing each of the logical methodsteps.

The method begins at START step 200, and at step 202 the cleartextmessage 102 is received into the sender aglet environment 100. At step204, the process of splitting the message into fragments by messagesplitter-sequencer 106 begins. Using a head-and-tail process, at step204 the head fragment is split from the tail fragment and at step 206,an aglet is spawned (created) with the head fragment as its payload. Theprocessing of the next head fragment follows through steps 204, 206until, at test step 208, it is determined that the tail is empty—thatis, there are no more fragments of the message to be processed. At step210, the key generator functions 108, 108′. . . for each aglet areinvoked, and at step 212, the encrypt functions 110, 110′. . . areinvoked for each aglet. At step 214, the transmit functions are invokedfor each aglet and at END step 216, the transmission portion of themethod of the preferred embodiment completes.

Turning now to FIG. 3, there are shown the steps of the receivingportion of a method according to an illustrative embodiment. FIG. 3 alsoillustrates the computer program code steps required to implement anembodiment of the present invention in a computer program product, butfor brevity, the method steps will be described here. It will be clearto those skilled in the programming art that the method lends itself toembodiment in program code means implementing each of the logical methodsteps.

The method begins at START step 300, and at step 302 an aglet 112, 112′.. . arrives at receiver aglet environment 116. The iteration comprisinglocate related aglets step 304, “all present?” test step 306 and waitstep 308 performs the function of ensuring that all related aglets 112,112′. . . are present in the receiver aglet environment 116. At teststep 310, the decrypt functions 110, 110′. . . are invoked for themessage fragments that are carried as payloads by each aglet 112, 112′.. . , and the process iterates through test step 312, wait step 314 anddecrypt step 310 until all the message fragments have been decrypted. Atstep 316 the recombine functions 122, 122′. . . are invoked for eachaglet, and the process iterates through test step 318 until the sequenceis completed—that is, until the decrypted message fragments have beenrecombined into a cleartext or decrypted message 124. At step 320, thedecrypted and recombined message is returned, and at END step 322, thereceiving portion of the method completes.

It will be clear to one of ordinary skill in the art that all or part ofthe method of the illustrative embodiments may suitably and usefully beembodied in a logic apparatus, or a plurality of logic apparatus,comprising logic elements arranged to perform the steps of the methodand that such logic elements may comprise hardware components, firmwarecomponents or a combination thereof.

It will be equally clear to one of skill in the art that all or part ofa logic arrangement according to the illustrative embodiments maysuitably be embodied in a logic apparatus comprising logic elements toperform the steps of the method, and that such logic elements maycomprise components such as logic gates in, for example, a programmablelogic array or application-specific integrated circuit. Such a logicarrangement may further be embodied in enabling elements for temporarilyor permanently establishing logic structures in such an array or circuitusing, for example, a virtual hardware descriptor language, which may bestored and transmitted using fixed or transmittable carrier media.

It will be appreciated that the method and arrangement described abovemay also suitably be carried out fully or partially in software runningon one or more processors (not shown in the figures), and that thesoftware may be provided in the form of one or more computer programelements carried on any suitable data-carrier (also not shown in thefigures) such as a magnetic or optical disk or the like. Channels forthe transmission of data may likewise comprise storage media of alldescriptions as well as signal-carrying media, such as wired or wirelesssignal-carrying media.

A method is generally conceived to be a self-consistent sequence ofsteps leading to a desired result. These steps require physicalmanipulations of physical quantities. Usually, though not necessarily,these quantities take the form of electrical or magnetic signals capableof being stored, transferred, combined, compared, and otherwisemanipulated. It is convenient at times, principally for reasons ofcommon usage, to refer to these signals as bits, values, parameters,items, elements, objects, symbols, characters, terms, numbers, or thelike. It should be noted, however, that all of these terms and similarterms are to be associated with the appropriate physical quantities andare merely convenient labels applied to these quantities.

The present invention may further suitably be embodied as a computerprogram product for use with a computer system. Such an implementationmay comprise a series of computer- readable instructions either fixed ona tangible medium, such as a computer readable medium, for example,diskette, CD-ROM, ROM, or hard disk, or transmittable to a computersystem, via a modem or other interface device, over either a tangiblemedium, including but not limited to optical or analogue communicationslines, or intangibly using wireless techniques, including but notlimited to microwave, infrared or other transmission techniques. Theseries of computer readable instructions embodies all or part of thefunctionality previously described herein.

Those skilled in the art will appreciate that such computer readableinstructions can be written in a number of programming languages for usewith many computer architectures or operating systems. Further, suchinstructions may be stored using any memory technology, present orfuture, including but not limited to semiconductor, magnetic, oroptical, or transmitted using any communications technology, present orfuture, including but not limited to optical, infrared, or microwave. Itis contemplated that such a computer program product may be distributedas a removable medium with accompanying printed or electronicdocumentation, for example, shrink-wrapped software, pre-loaded with acomputer system, for example, on a system ROM or fixed disk, ordistributed from a server or electronic bulletin board over a network,for example, the Internet or World Wide Web. In one alternative, theillustrative embodiments may be realized in the form of a computerimplemented method of deploying a service comprising steps of deployingcomputer program code operable to, when deployed into a computerinfrastructure and executed thereon, cause said computer system toperform all the steps of the method.

In a further alternative, the illustrative embodiments may be realizedin the form of a data carrier having functional data thereon, saidfunctional data comprising functional computer data structures to, whenloaded into a computer system and operated upon thereby, enable saidcomputer system to perform all the steps of the method.

It will be clear to one skilled in the art that many improvements andmodifications can be made to the foregoing exemplary embodiment withoutdeparting from the scope of the present invention.

1. A method for securely transmitting data from a sender computer systemto a receiver computer system comprising: receiving an unencryptedmessage by a first intelligent agent environment at said sender computersystem; splitting said unencrypted message into a plurality of messagefragments by a splitter component of said first intelligent agentenvironment; creating an intelligent agent for each said messagefragment by an agent creator in said first intelligent agent environmentto form a set of intelligent agents; generating a key for each saidmessage fragment by a key generator function of each said intelligentagent; encrypting each said message fragment by an encryption functionof each said intelligent agent to produce a respective encrypted messagefragment; and transmitting each said intelligent agent with saidrespective encrypted message fragment as a data payload to the receivercomputer system.
 2. The method according to claim 1, further comprising:receiving each said intelligent agent with said respective encryptedmessage fragment as a data payload by a second intelligent agentenvironment at said receiver computer system; locating by each saidintelligent agent each other of the set of intelligent agents;decrypting each said encrypted respective message fragment by adecryption function of each said intelligent agent to produce arespective unencrypted message fragment; and collaborating by each saidintelligent agent of said set of agents to recombine each saidrespective unencrypted message fragment to form a received message. 3.The method according to claim 1 wherein transmitting each saidintelligent agent comprises transmitting by a route selected from aplurality of routes to exclude routes used to transmit any other of theset of intelligent agents.
 4. The method according to claim 1 whereinencrypting each said message fragment comprises encrypting by anencrypting function selected from a plurality of encrypting functions toexclude encrypting functions used to encrypt any other of said pluralityof message fragments.
 5. The method according to claim 1 whereinsplitting said message into a plurality of message fragments furthercomprises attaching sequence metadata to each of said message fragments.6. The method according to claim 2 wherein splitting the message into aplurality of message fragments comprises attaching sequence metadata toeach o the message fragments and wherein collaborating to recombinecomprises ordering said unencrypted message fragments according to saidsequence metadata.
 7. The method according to claim 2 wherein decryptingfurther comprises delaying until a predetermined time.
 8. An apparatuscomprising: a sender computer system comprising a processor and a memorycoupled to the processor, wherein the memory comprises instructionswhich, when executed by the processor, cause the processor to securelytransmit data from the sender computer system to a receiver computersystem, wherein the instructions comprise: a first intelligent agentenvironment at said sender computer system operable to receive acleartext message; a splitter component of said first intelligent agentenvironment operable to split said message into a plurality of messagefragments; an agent creator in said first intelligent agent environmentoperable to create an intelligent agent for each said message fragment;a key generator of each said intelligent agent operable to generate akey for each said message fragment; an encryption component of each saidintelligent agent operable to produce a respective encrypted messagefragment by encrypting each said message fragment; and a transmitcomponent for transmitting each said intelligent agent with saidrespective encrypted message fragment as a data payload.
 9. Theapparatus according to claim 8, wherein the receiver computer systemcomprises a second processor and a second memory coupled to the secondprocessor, wherein the second memory comprises second instructionswhich, when executed by the second processor, cause the second processorto receive data from the sender computer system, wherein the secondinstructions comprise: a second intelligent agent environment at saidreceiver computer system operable to receive each said intelligent agentwith said respective encrypted message fragment as a data payload; alocating component for locating by each said intelligent agent eachother of a set of agents; a decryption component of each saidintelligent agent operable to produce a respective cleartext messagefragment by decrypting each said respective encrypted message fragment;and a message recombiner component for collaborating by each saidintelligent agent of said set of agents to recombine each saidrespective cleartext message fragment to form a cleartext message. 10.The apparatus according to claim 8 wherein the transmit componenttransmits by a route selected from a plurality of routes to excluderoutes used to transmit any other of said intelligent agents.
 11. Theapparatus according to claim 8, wherein said encryption componentcomprises an encrypting function selected from a plurality of encryptingfunctions to exclude encrypting functions used to encrypt any other ofsaid plurality message fragments.
 12. The apparatus according to claim8, wherein said splitter component attaches sequence metadata to each ofsaid message fragments.
 13. The apparatus according to claim 9 whereinsaid splitter component attaches sequence metadata to each of saidmessage fragments and wherein the message recombiner component orderssaid cleartext message fragments according to said sequence metadata.14. The apparatus according to claim 9 wherein decrypting furthercomprises delaying until a predetermined time.
 15. A computer programproduct comprising a computer readable storage medium having a computerreadable program stored therein, wherein the computer readable program,when executed on a sender computer system, causes the sender computersystem to: receive an unencrypted message by a first intelligent agentenvironment at said sender computer system; split said unencryptedmessage into a plurality of message fragments by a splitter component ofsaid first intelligent agent environment; create an intelligent agentfor each said message fragment by an agent creator in said firstintelligent agent environment to form a set of intelligent agents;generate a key for each said message fragment by a key generatorfunction of each said intelligent agent; encrypt each said messagefragment by an encryption function of each said intelligent agent toproduce a respective encrypted message fragment; and transmit each saidintelligent agent with said respective encrypted message fragmentreceiver computer system.
 16. The computer program product according toclaim 15 wherein transmitting each said intelligent agent comprisestransmitting by a route selected from a plurality of routes to excluderoutes used to transmit any other of the set of intelligent agents. 17.The computer program product according to claim 15 wherein encryptingeach said message fragment comprises encrypting by an encryptingfunction selected from a plurality of encrypting functions to excludeencrypting functions used to encrypt any other of said plurality ofmessage fragments.
 18. The computer program product according to claim15 wherein splitting said message into a plurality of message fragmentsfurther comprises attaching sequence metadata to each of said messagefragments.
 19. The computer program product according to claim 15,further comprising a computer readable storage medium having a computerreadable program stored therein, wherein the computer readable program,when executed on the receiver computer system, causes the receivercomputer system to: receiving each said intelligent agent with saidrespective encrypted message fragment as a data payload by a secondintelligent agent environment at said receiver computer system; locatingby each said intelligent agent each other of the set of intelligentagents; decrypting each said encrypted respective message fragment by adecryption function of each said intelligent agent to produce arespective unencrypted message fragment; and collaborating by each saidintelligent agent of said set of agents to recombine each saidrespective unencrypted message fragment to form a received message. 20.The computer program product according to claim 19 wherein splitting themessage into a plurality of message fragments comprises attachingsequence metadata to each of the message fragments and whereincollaborating to recombine comprises ordering said unencrypted messagefragments according to said sequence metadata.